package thread;

/**
 * @author DBX
 * @effect 线程的优先级
 *          当一个线程调用start方法后，其纳入线程调度器的统一管理，此时该线程何时获取时间片完全由线程调度器管理，调度器会尽可能均匀的
 *          分配时间给每一个线程，但是线程无法主动获取
 *          调整线程的优先级可以最大程度的改善获取时间片的次数
 *          优先级越高的线程获取时间片的次数越多
 *          分为10个等级，使用线程提供的方法设置：
 *                              void setPriority(int priority)
 * @date 2021/8/31 0031 - 17:03
 */
public class PriorityDemo {
    public static void main(String[] args) {
        Thread min = new Thread(){

            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("min---->"+i);
                }
            }
        };
        Thread max = new Thread(()->{
            for (int i = 0; i < 1000; i++) {
                System.out.println("max----->"+i);
            }
        });
        Thread norm = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("norm---->"+i);
                }
            }
        });

        min.setPriority(Thread.MIN_PRIORITY);
        max.setPriority(Thread.MAX_PRIORITY);

        min.start();
        max.start();
        norm.start();
    }
}
